MPEG Compliant Streams
Methods and systems for compressing and transmitting media signals are known in the art. Compressed digital video is largely becoming the preferred medium to transmit to video viewers everywhere. Part of the Moving Pictures Experts Group (MPEG) specifications are standardized methods for compressing and transmitting video. Various audio compression techniques are also known in the art. In general, MPEG is used today for transmitting video over terrestrial, wireless, satellite and cable communication channels and also for storing digital video.
An audio stream is organized as an ordered sequence of frames. A video stream is usually organized as an ordered sequence of pictures. Each picture includes a plurality of slices, each slice including a plurality of macro blocks. The audio and video streams are provided to an audio encoder and video encoder respectively to generate compressed audio and video elementary streams, also referred to as elementary streams.
Elementary streams are packetized to produce PES packets. PES packets made up of elementary streams that form a program share a common time base. The PES packets may also include additional information. PES packets of distinct elementary streams can be arranged as a Transport Stream.
A Transport Stream combines one or more programs with one or more independent time bases into a single stream. Transport Streams include Transport packets of 188 bytes. Transport Stream packets start with a Transport packet header. The header includes a packet identifier (PID). Transport Stream packets of one PID value carry data of a single elementary stream. The packet identifiers are used by user devices to filter selected streams (relating, for example, to a certain television channel to which the user wishes to be tuned to) out of the Transport Stream.
A Transport Stream includes Program Specific Information (PSI) tables. The PSI tables specify which PIDs and accordingly which elementary streams are associated to form each program.
The PSI tables include a Program Association Table (PAT) and a Program Map Table (PMT) as well as other tables. Each table may be encapsulated in multiple Transport Stream packets. Packets that convey the PAT have a zero valued PID. PAT lists PID values for all PMT. The PAT lists two sets of values—one is a programs number (PN) and the other is the PID value of the Program Map Table associated with that program number. Program Number values are associated with television channels. A certain television channel broadcasts a certain program at a certain point in time. This program includes multiple elementary streams that are multiplexed together and broadcast to multiple user devices.
A program map table lists PID values of all the streams (audio, video, data, etc.) that form a program. A program map table may also include additional metadata pertaining to these streams.
If a user requests to be tuned to a certain television channel (such as but not limited to HBO, CNN, National Geographic, ABC, NBC, Channel four, and the like) a user device (such as a set top box) performs the following operations: (i) retrieve the PAT (filtering zero value PID packets), (ii) find (using the program number associated with the certain television channel) the PID value of the program map table associated with the television channel, (iii) filters the packets that convey the various elementary streams of a program that is being broadcast by the selected television channel based upon their PID values (as listed in the program map table). It is noted that the filtering process is also known as extraction.
In many cases, the user also has to be tuned to a different frequency, as only few programs are transmitted on a single carrier wave.
These mentioned above processes are time consuming and slow down the switching from one program to another. This is noticeable also in switched unicast systems that transmit a unique (unicast) program per user.